In recent years personal computers and facsimile machines have become nearly indispensable tools for many businesses. In response, numerous manufactures have developed facsimile machines, generically referred to hereinafter as fax cards, that operatively interconnect with personal computers. Such fax cards can usually transmit images stored in the computer's memory and can receive images from remote facsimile machines which are then stored in data files in the computer's memory.
While interconnected computers and fax cards are highly useful, their potential remains unfulfilled. This is at least partially related to the fact that different fax card manufacturers process received facsimile images differently, and thus the resulting data files have different formats. Some manufacturers store facsimile images in a run length encoded format according to the widely used CCITT G3 specification, others partially decode the G3 encoded format and then store the received image, while others completely decode the facsimile image and store it in a bit-map form. These differences make it impractical to write application software capable of working with all data file formats.
The incompatibility problem only grows if the computer/fax card system is networked. Then, a facsimile image stored in a data file format produced by one fax card may need to be re-transmitted by a fax card which only works correctly with data in a different file format. The number of possible fax card combinations on large systems becomes immense. While it might be possible to limit the number of brands of fax cards a given system might handle, to remain up to date, one would need to rewrite each application software package every time a supported fax card manufacturer modified its data file format. In the rapidly changing world of facsimile communications, complex application packages might become too expensive to develop and support. Besides, an unsupported fax card might become highly popular and its integration into existing systems might be beneficial.
The data file formats from different fax cards may not only be incompatible with each other, but they may also be incompatible with efficient data processing by the host computer. For example, a bit-mapped representation of a single facsimile image might contain more than 0.5M Bytes of data. Not only would such a large data file require significant memory, but if the bit-mapped image requires data processing (such as reformatting for retransmission using another fax card) excessive time might be required. While storing received facsimile images in a run length encoded format would usually require much less memory, data processing of such an image might even be slower. This is because some run length encoded formats store information about more than one run length within a single data byte. In that case, the individual run lengths would have to be separated before the image data could be processed. Such separation might require significant time.
Since speed is important in a computer system, and since data processing requires time, it would be advantageous to have a system of storing a facsimile image received by any one of a plurality of fax cards in a form which assists rapid processing of the image and use of the image by standardized software programs.